﻿package org.demo.book;

import org.demo.book.BookLinkInfo;
import org.demo.book.BookInstance;

/**
 * Description: 游戏逻辑接口
 * <br/>site: <a href="http://weibo.com/u/1679839007">nonoob</a> 
 * <br/>Copyright (C), 1989-2011, Hongxu Chen
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:2011-11-15
 * @author  Hongxu Chen leftcopy.chx@gmail.com
 * @version  1.0
 */
public interface BookLogicInterface
{
	/**
	 * 控制游戏开始的方法
	 */
	void start();

	/**
	 * 定义一个接口方法, 用于返回一个二维数组
	 * 
	 * @return 存放方块对象的二维数组
	 */
	BookInstance[][] getBooks();
	
	/**
	 * 判断参数BookInstance[][]数组中是否还存在非空的BookInstance对象
	 * 
	 * @return 如果还剩BookInstance对象返回true, 没有返回false
	 */
	boolean hasBooks();
	
	/**
	 * 根据鼠标的x坐标和y坐标, 查找出一个BookInstance对象
	 * 
	 * @param touchX 鼠标点击的x坐标
	 * @param touchY 鼠标点击的y坐标
	 * @return 返回对应的Piece对象, 没有返回null
	 */
	BookInstance findBook(float touchX, float touchY);

	/**
	 * 判断两个BookInstance是否可以相连, 可以连接, 返回BookLinkInfo对象
	 * 
	 * @param b1 第一个BookInstance对象
	 * @param b2 第二个BookInstance对象
	 * @return 如果可以相连，返回BookLinkInfo对象, 如果两个BookInstance不可以连接, 返回null
	 */
	BookLinkInfo link(BookInstance b1, BookInstance b2);
}
